System and method for concepts caching using a deep-content-classification (dcc) system

ABSTRACT

A method and system for caching concept structures in a cache memory of a user computing device are provided. The method includes collecting at least one environmental variable related to a user of the computing device; retrieving at least one concept structure matching the at least one received environmental variable, each concept structure comprises a concept metadata associated with a plurality of multimedia content elements; and caching the at least one matching concept structure in the cache memory.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.14/700,801 filing date Apr. 30, 2015 which claims the benefit of U.S.provisional application No. 61/986,245 filed Apr. 30, 2014. U.S. patentapplication Ser. No. 14/700,801 is a continuation-in-part (CIP)application of U.S. patent application Ser. No. 14/530,918 filed Nov. 3,2014, now pending. U.S. patent application Ser. No. 14/530,918 claimsthe benefit of benefit of U.S. provisional application No. 61/899,224filed on Nov. 3, 2013. The contents of the above-referenced applicationsare herein incorporated by reference.

The contents of the below-referenced application are herein incorporatedby reference” U.S. patent application Ser. No. 14/013,636 filed Aug. 29,2013; U.S. patent application Ser. No. 13/602,858 filed Sep. 4, 2012,now issued as U.S. Pat. No. 8,868,619; U.S. patent application Ser. No.12/603,123, filed on Oct. 21, 2009, now issued as U.S. Pat. No.8,266,185; U.S. patent application Ser. No. 12/084,150 having a filingdate of Apr. 7, 2009, now issued as U.S. Pat. No. 8,655,801;International Application No. PCT/IL2006/001235, filed on Oct. 26, 2006;Israeli Application No. 171577 filed on Oct. 26, 2005; IsraeliApplication No. 173409 filed on Jan. 29, 2006; U.S. patent applicationSer. No. 12/195,863, filed Aug. 21, 2008, now issued as U.S. Pat. No.8,326,775; Israeli Application No. 185414, filed on Aug. 21, 2007; U.S.patent application Ser. No. 12/348,888, filed Jan. 5, 2009; U.S. patentapplication Ser. No. 12/538,495, filed Aug. 10, 2009, now issued as U.S.Pat. No. 8,312,031; U.S. patent application Ser. No. 12/195,863, filedon Aug. 21, 2008; and U.S. patent application Ser. No. 12/348,888, filedJan. 5, 2009.

TECHNICAL FIELD

The present disclosure relates generally to the analysis of multimediacontent, and more specifically to a system for caching conceptstructures in a cache memory of a computing device for an analysis ofthe multimedia content.

BACKGROUND

With the abundance of multimedia content made available through variousmeans in general and the internet in particular, there is also a need toprovide effective ways for analyzing the multimedia content. Suchmultimedia content may include, an image, a graphic, a video stream, avideo clip, an audio stream, an audio clip, a video frame, a photograph,an image of signals (e.g., spectrograms, phasograms, scalograms, etc.),and the like.

Analyzing such multimedia content may be challenging at best due to thehuge amount of information that needs to be examined. Helpful and vitaldata analysis becomes time intensive due to the amount of data that mustbe processed. As a result, data analysis may be given a low priority or,in some cases, ignored.

Computational cores may be employed to speed up the process of analysis.

In cases where the analysis is made using a mobile device, such as asmart phone or a wearable computing device, the task of efficientlymanaging the computational cores is highly increased due to the limitedcapabilities of the device.

It is possible to access computational cores outside the device via anetwork to complete the analysis, but this process consumes a largeamount of bandwidth.

There is therefore a need in the art to overcome the deficiencies of theprior art solutions and to provide a system that efficiently manages thebandwidth and computing resources consumed in order to analyzemultimedia content.

SUMMARY

A summary of several example embodiments of the disclosure follows. Thissummary is provided for the convenience of the reader to provide a basicunderstanding of such embodiments and does not wholly define the breadthof the disclosure.

This summary is not an extensive overview of all contemplatedembodiments, and is intended to neither identify key or criticalelements of all aspects nor delineate the scope of any or all aspects.Its sole purpose is to present some concepts of one or more embodimentsin a simplified form as a prelude to the more detailed description thatis presented later. For convenience, the term some embodiments may beused herein to refer to a single embodiment or multiple embodiments ofthe disclosure.

Certain embodiments include a method for caching concept structures in acache memory of a user computing device. The method comprises collectingat least one environmental variable related to a user of the computingdevice; retrieving at least one concept structure matching the at leastone received environmental variable, each concept structure comprises aconcept metadata associated with a plurality of multimedia contentelements; and caching the at least one matching concept structure in thecache memory.

Certain embodiments include a system for caching concept structures in acache memory of a user computing device. The system comprises aprocessing unit; and a memory connected to the processing unit, thememory contains instructions that when executed by the processing unit,configured the system to: receive at least one environmental variablerelated to a user of the computing device; retrieve at least one conceptstructure matching the at least one received environmental variable,each concept structure comprises a concept metadata associated with aplurality of multimedia content elements; and caching the at least onematching concept structure in the cache memory.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter that is disclosed herein is particularly pointed outand distinctly claimed in the claims at the conclusion of thespecification. The foregoing and other objects, features and advantagesof the disclosed embodiments will be apparent from the followingdetailed description taken in conjunction with the accompanyingdrawings.

FIG. 1 is a diagram of a DCC system for creating concept structures.

FIG. 2 is a flowchart illustrating the operation of the patch attentionprocessor of the DCC system.

FIG. 3 is a block diagram depicting the basic flow of information in alarge-scale video matching system.

FIG. 4 is a diagram showing the flow of patches generation, responsevector generation, and signature generation in a large-scalespeech-to-text system.

FIG. 5 is a flowchart illustrating the operation of the clusteringprocessor of the DCC system.

FIG. 6 is a flowchart illustrating the operation of the conceptgenerator of the DCC system.

FIG. 7 is a diagram of a network system utilized to describe certaindisclosed embodiments.

FIG. 8 is a flowchart describing the process of caching conceptstructures in a cache memory of a computing device.

FIG. 9 is a flowchart describing the process of analyzing multimediacontent element using the cache memory of the computing device.

DETAILED DESCRIPTION

The embodiments disclosed herein are only examples of the many possibleadvantageous uses and implementations of the innovative teachingspresented herein. In general, statements made in the specification ofthe present application do not necessarily limit any of the variousclaimed embodiments. Moreover, some statements may apply to someinventive features but not to others. In general, unless otherwiseindicated, singular elements may be in plural and vice versa with noloss of generality. In the drawings, like numerals refer to like partsthrough several views.

FIG. 1 shows an exemplary and non-limiting diagram of a DCC system 100for creating concept structures. The DCC system 100 is configured toreceive multimedia data elements (MMDEs), for example from the Internetvia the network interface 160. The MMDEs include, but are not limitedto, images, graphics, video streams, video clips, audio streams, audioclips, video frames, photographs, images of signals, combinationsthereof, and portions thereof. The images of signals are images such as,but not limited to, medical signals, geophysical signals, subsonicsignals, supersonic signals, electromagnetic signals, and infraredsignals.

The MMDEs may be stored in a database (DB) 150 or kept in the DB 150 forfuture retrieval of the respective multimedia data element. Such areference may be, but is not limited to, a universal resource locator(URL). Every MMDE in the DB 150, or referenced therefrom, is thenprocessed by a patch attention processor (PAP) 110 resulting in aplurality of patches that are of specific interest, or otherwise ofhigher interest than other patches. A more general pattern extraction,such as an attention processor (AP) may also be used in lieu of patches.The AP receives the MMDE that is partitioned into items; an item may bean extracted pattern or a patch, or any other applicable partitiondepending on the type of the MMDE. The functions of the PAP 110 aredescribed herein below in more detail with respect to FIG. 2.

Those patches that are of higher interest are then used by a signaturegenerator (SG) 120 to generate signatures respective of the patch. Theoperation of the signature generator (SG) 120 is described in moredetail herein below. A clustering processor (CP) 130 initiates a processof inter-matching of the signatures once it determines that there are anumber of patches that are above a predefined threshold. The thresholdmay be defined to be large enough to enable proper and meaningfulclustering. With a plurality of clusters a process of clusteringreduction takes place so as to extract the most useful data about thecluster and keep it at an optimal size to produce meaningful results.The process of cluster reduction is continuous. When new signatures areprovided after the initial phase of the operation of the CP 130, the newsignatures may be immediately checked against the reduced clusters tosave on the operation of the CP 130. A more detailed description of theoperation of the CP 130 is provided herein below with respect to FIG. 5.

A concept generator (CG) 140 operates to create concept structures fromthe reduced clusters provided by the CP 130. Each concept structurecomprises a plurality of metadata associated with the reduced clusters.The result is a compact representation of a concept that can now beeasily compared against a MMDE to determine if the received MMDE matchesa concept structure stored, for example in the DB 150, by the CG 140.This can be done, for example and without limitation, by providing aquery to the DCC system 100 for finding a match between a conceptstructure and a MMDE. A more detailed description of the operation ofthe CG 140 is provided herein below with respect to FIG. 6.

It should be appreciated that the DCC system 100 can generate a numberof concept structures significantly smaller than the number of MMDEs.For example, if one billion (10.sup.9) MMDEs need to be checked for amatch against another one billion MMDEs, typically the result is that noless than 10.sup.9.times.10.sup.9=10.sup.18 matches have to take place,a daunting undertaking. The DCC system 100 would typically have around10 million concept structures or less, and therefore at most only2.times.10.sup.6.times.10.sup.9=2.times.10.sup.15 comparisons need totake place, a mere 0.2% of the number of matches that have had to bemade by other solutions. As the number of concept structures growssignificantly smaller than the number of MMDEs, the advantages of theDCC system 100 would be apparent to one with ordinary skill in the art.

The operation of the PAP 110 will now be provided in greater detail withrespect to an image as the MMDE. However, this should not be understoodas to limit the scope of the disclosed embodiments; other types of MMDEsare specifically included herein and may be handled by the PAP 110.

FIG. 2 depicts an exemplary and non-limiting flowchart 200 of theoperation of the PAP 110. At S210, a MMDE is received from a source forsuch MMDEs by the PAP 110. Such a source may be a system that feeds theDCC system 100 with MMDEs or other sources for MMDEs, for example theworld-wide-web (WWW). At S220, a plurality of patches is created fromthe MMDE by the PAP 110. A patch of an image is defined by, for example,its size, scale, location, and orientation. A patch may be, for exampleand without limitation, a portion of an image of a size 20 pixels by 20pixels of an image that is 1,000 pixels by 500 pixels. In the case ofaudio, a patch may be a segment of audio 0.5 seconds in length from a 5minute audio clip. At S230, a patch not previously checked is processedto determine its entropy. The entropy is a measure of the amount ofinteresting information that may be present in the patch. For example, acontinuous color of the patch has little interest while sharp edges,corners, or borders will result in higher entropy representing a lot ofinteresting information. The plurality of statistically independentcores, the operation of which is discussed in more detail herein below,is used to determine the level-of-interest of the image and a process ofvoting takes place to determine whether the patch is of interest or not.

At S240, it is checked whether the entropy was determined to be above apredefined threshold, and if so execution continues with S250;otherwise, execution continues with S260. At S250, the patch havingentropy above the threshold is stored for future use by the SG 120 in amemory, for example a DB 150. At S260, it is checked whether there aremore patches of the MMDE to be checked, and if so execution continueswith S220; otherwise execution continues with S270. At S270, it ischecked whether there are additional MMDEs, and if so executioncontinues with S210; otherwise, execution terminates. It would beappreciated by those of skill in the art that this process reduces theinformation that must be handled by the DCC system 100 by focusing onareas of interest in the MMDEs rather than areas that are lessmeaningful for the formation of a concept structure.

A high-level description of the process for large scale video matchingperformed by the Matching System is depicted in FIG. 3. Video contentsegments 2 from a Master DB 6 and a Target DB 1 are processed inparallel by a large number of independent computational cores 3 thatconstitute the Architecture. Further details on the computational coresgeneration are provided below. The independent cores 3 generate adatabase of Robust Signatures and Signatures 4 for Targetcontent-segments 5 and a database of Robust Signatures and Signatures 7for Master content-segments 8. An exemplary and non-limiting process ofsignature generation for an audio component is shown in detail in FIG.4. Referring back to FIG. 3, at the final step, Target Robust Signaturesand/or Signatures are effectively matched, by a matching algorithm 9, toMaster Robust Signatures and/or Signatures database to find all matchesbetween the two databases.

A brief description of the operation of the SG 120 is thereforeprovided, this time with respect to a MMDE which is a sound clip.However, this should not be understood as to limit the scope of thedisclosed embodiments and other types of MMDEs are specifically includedherein and may be handled by SG 120. To demonstrate an example ofsignature generation process, it is assumed, merely for the sake ofsimplicity and without limitation on the generality of the disclosedembodiments, that the signatures are based on a single frame, leading tocertain simplification of the computational core's generation. TheMatching System shown in FIG. 3 is extensible for signatures generationcapturing the dynamics in-between the frames and the information of theframe's patches.

The signatures generation process will be described with reference toFIG. 4. The first step in the process of signatures generation from agiven speech-segment is to break-down the speech-segment to K patches 14of random length P and random position within the speech segment 12. Thebreak-down is performed by the patch generator component 21. The valueof K is determined based on optimization, considering the tradeoffbetween accuracy rate and the number of fast matches required in theflow process of the Matching System. In the next step, all the K patchesare injected in parallel to all L computational cores 3 to generate Kresponse vectors 22. The vectors 22 are fed into the SG 120 to produce aSignatures and Robust Signatures 4.

In order to generate Robust Signatures, i.e., Signatures that are robustto additive noise, L (where L is an integer equal to or greater than 1)computational cores are utilized in the Matching System. A frame i isinjected into all the cores. The computational cores 3 generate twobinary response vectors: {right arrow over (S)} which is a Signaturevector, and {right arrow over (RS)} which is a Robust Signature vector.

For generation of signatures robust to additive noise, such asWhite-Gaussian-Noise, scratch, etc., but not robust to distortions, suchas crop, shift and rotation, etc., a coreC.sub.i={n.sub.i}(1.ltoreq.i.ltoreq.L) may consist of a single leakyintegrate-to-threshold unit (LTU) node or more nodes. The node n.sub.iequations are:

Vi=jwijkj  ## EQU00001##

ni=(Vi−Thx);  ## EQU00001.2##

.Pl. is a Heaviside step function; w.sub.ij is a coupling node unit(CNU) between node i and image component j (for example, grayscale valueof a certain pixel j); k.sub.j is an image component j (for example,grayscale value of a certain pixel j); Th.sub.x is a constant Thresholdvalue, where x is ‘S’ for Signature and ‘RS’ for Robust Signature; andV.sub.i is a Coupling Node Value.

The Threshold values Th.sub.x are set differently for Signaturegeneration and for Robust Signature generation. For example, for acertain distribution of V.sub.i values (for the set of nodes), thethresholds for Signature (Th.sub.S) and Robust Signature (Th.sub.RS) areset apart, after optimization, according to at least one or more of thefollowing criteria:

For: V.sub.i>Th.sub.RS

1−p(V>Th.sub.S)−1−(1−.epsilon.).sup.i<<1  I:

i.e., given that I nodes (cores) constitute a Robust Signature of acertain image I, the probability that not all of these I nodes willbelong to the Signature of same, but noisy image, is sufficiently low(according to a system's specified accuracy).

p(V.sub.i>Th.sub.RS).apprxeq.I/L  II:

i.e., approximately I out of the total L nodes can be found to generateRobust Signature according to the above definition.

III: Both Robust Signature and Signature are generated for certain framei.

It should be understood that the creation of a signature is aunidirectional compression where the characteristics of the compresseddata are maintained but the compressed data cannot be reconstructed.Therefore, a signature can be used for the purpose of comparison toanother signature without the need of comparison of the original data.The detailed description of the Signature generation can be found U.S.Pat. Nos. 8,326,775 and 8,312,031, assigned to common assignee, whichare hereby incorporated by reference for all the useful information theycontain.

Computational core generation is a process of definition, selection, andtuning of the Architecture parameters for a certain realization in aspecific system and application. The process is based on several designconsiderations, such as: (a) The cores should be designed so as toobtain maximal independence, i.e. the projection from a signal spaceshould generate a maximal pair-wise distance between any two cores'projections into a high-dimensional space; (b) The cores should beoptimally designed for the type of signals, i.e. the cores should bemaximally sensitive to the spatio-temporal structure of the injectedsignal, for example, and in particular, sensitive to local correlationsin time and space. Thus, in some cases a core represents a dynamicsystem, such as in state space, phase space, edge of chaos, etc., whichis uniquely used herein to exploit their maximal computational power,and, (c) The cores should be optimally designed with regard toinvariance to a set of signal distortions, of interest in relevantapplications. Detailed description of the computational core generation,the computational architecture, and the process for configuring suchcores is discussed in more detail in U.S. Pat. No. 8,655,801 referencedabove.

Hence, signatures are generated by the SG 120 responsive of patchesreceived either from the PAP 110, or retrieved from the DB 150, asdiscussed hereinabove. It should be noted that other ways for generatingsignatures may also be used for the purpose the DCC system 100.Furthermore, as noted above, the array of computational cores may beused by the PAP 110 for the purpose of determining if a patch has anentropy level that is of interest for signature generation according tothe principles of the disclosed embodiments. The generated signaturesare stored, for example, in the DB 150, with reference to the MMDE andthe patch for which it was generated, thereby enabling back annotationas may be necessary.

Portions of the CP 130 have been discussed in detail in the co-pendingU.S. patent application Ser. No. 12/507,489, entitled “UnsupervisedClustering of Multimedia Data Using a Large-Scale Matching System”,filed Jul. 22, 2009, assigned to common assignee (the “'489application”), and which is hereby incorporated for all that itcontains. In accordance with an embodiment, an inter-match process andclustering thereof is utilized. The process can be performed onsignatures provided by the SG 120. It should be noted though that thisinter-matching and clustering process is merely an example for theoperation of the CP 130 and other inter-matching and/or clusteringprocesses may be used for the purpose of the disclosed embodiments.

Following is a brief description of the inter-match and clusteringprocess. The unsupervised clustering process maps a certaincontent-universe onto a hierarchical structure of clusters. Thecontent-elements of the content-universe are mapped to signatures, whenapplicable. The signatures of all the content-elements are matched toeach other, and consequently generate the inter-match matrix. Thedescribed clustering process leads to a set of clusters. Each cluster isrepresented by a small/compressed number of signatures, for examplesignatures generated by SG 120 as further explained hereinabove, whichcan be increased by variants. This results in a highly compressedrepresentation of the content-universe. A connection graph between themultimedia data elements of a cluster may be stored. The graph can thenbe used to assist a user searching for data to move along the graph inthe search of a desired multimedia data element.

In another embodiment, upon determination of a cluster, a signature forthe whole cluster may be generated based on the signatures of themultimedia data elements that belong to the cluster. It should beappreciated that using a Bloom filter may be used to reach suchsignatures. Furthermore, as the signatures are correlated to someextent, the hash functions of the Bloom filter may be replaced bysimpler pattern detectors, with the Bloom filter being the upper limit.

While signatures are used here as the basic data elements, it should berealized that other data elements may be clustered using the techniquesdiscussed above. For example, a system generating data items is used,where the data items generated may be clustered according to thedisclosed principles. Such data items may be, without limitation,multimedia data elements. The clustering process may be performed bydedicated hardware or by using a computing device having storage tostore the data items generated by the system and then performing theprocess described herein above. Then, the clusters can be stored inmemory for use as may be deemed necessary.

The CP 130 further uses an engine designed to reduce the number ofsignatures used in a structure, in a sense extracting only the mostmeaningful signatures that identify the cluster uniquely. This can bedone by testing a removal of a signature from a cluster and checking ifthe MMDEs associated with the cluster still are capable of beingrecognized by the cluster through signature matching.

The process of signature extraction is on-going as the DCC system 100operates. It should be noted that after initialization, upon signaturegeneration by the SG 120 of a MMDE, the MMDE's respective signature isfirst checked against the clusters to see if there is a match and if soit may not be necessary to add the signature to the cluster or clusters,but rather associate the MMDE with the identified cluster or clusters.However, in some cases where additional refinement of the conceptstructure is possible, the signature may be added, or at times evenreplace one or more of the existing signatures in the reduced cluster.If no match is found then the process of inter-matching and clusteringmay take place.

FIG. 5 depicts an exemplary and non-limiting flowchart 500 of theoperation of the CP 130. At S510, a signature of a MMDE is received, forexample from the SG 120. At S520, it is checked whether the signaturematches one or more existing clusters and if so execution continues withS550; otherwise, execution continues with S530. At S530, an inter-matchbetween a plurality of signatures previously received by the DCC system100 is performed, for example in accordance with the principles of the'489 application. As may be necessary, the DB 150 may be used to storeresults or intermediate results as the case may be, however, othermemory elements may be used. At S540, a clustering process is performed,for example in accordance with the principles of the '489 application.As may be necessary, the DB 150 may be used to store results orintermediate results as the case may be, however, other memory elementsmay be used.

At S550, the signature identified to match one or more clusters isassociated with the existing cluster(s). At S560, it is checked whethera periodic cluster reduction is to be performed, and if so executioncontinues with S570; otherwise, execution continues with S580. At S570,the cluster reduction process is performed. Specifically, the purpose ofthe operation is to ensure that in the cluster there remains the minimalnumber of signatures that still identify all of the MMDEs that areassociated with the signature reduced cluster (SRC). This can beperformed, for example, by attempting to match the signatures of each ofthe MMDEs associated with the SRC having one or more signatures removedtherefrom. The process of cluster reduction for the purpose ofgenerating SRCs may be performed in parallel and independently of theprocess described herein above. In such a case, after either S560 orS570 the operation of S580 takes place. At S580, it is checked whetherthere are additional signatures to be processed and if so executioncontinues with S510; otherwise, execution terminates. SRCs may be storedin memory, such as DB 150, for the purpose of being used by otherelements comprising the DCC system 100.

The CG 140 performs two tasks, it associates metadata to the SRCsprovided by the CP 130 and it associates between similar clusters basedon commonality of metadata. Exemplary and non-limiting methods forassociating metadata with MMDEs is described in U.S. patent applicationSer. No. 12/348,888, entitled “Methods for Identifying Relevant Metadatafor Multimedia Data of a Large-Scale Matching System”, filed on Jan. 5,2009, assigned to common assignee (the “'888 application”), and which ishereby incorporated for all that it contains. One embodiment of the '888application includes a method for identifying and associating metadatato input MMDEs. The method comprises comparing an input first MMDE to atleast a second MMDE; collecting metadata of at least the second MMDEwhen a match is found between the first MMDE and at least the secondMMDE; associating at least a subset of the collected metadata to thefirst MMDE; and storing the first MMDE and the associated metadata in astorage.

Another embodiment of the '888 application includes a system forcollecting metadata for a first MMDE. The system comprises a pluralityof computational cores enabled to receive the first MMDE, each corehaving properties to be statistically independent of each other core,each generate responsive to the first MMDE a first signature element anda second signature element, the first signature element being a robustsignature; a storage unit for storing at least a second MMDE, metadataassociated with the second MMDE, and at least one of a first signatureand a second signature associated with the second MMDE, the firstsignature being a robust signature; and a comparison unit for comparingsignatures of MMDEs coupled to the plurality of computational cores andfurther coupled to the storage unit for the purpose of determiningmatches between multimedia data elements; wherein responsive toreceiving the first MMDE the plurality of computational cores generate arespective first signature of said first MMDE and/or a second signatureof said first MMDE, for the purpose of determining a match with at leasta second MMDE stored in the storage and associating metadata associatedwith the at least second MMDE with the first MMDE.

Similar processes to match metadata with a MMDE or signatures thereofmay be used. Accordingly, each SRC is associated with metadata which isthe combination of the metadata associated with each of the signaturesthat are included in the respective SRC, preferably without repetitionof metadata. A plurality of SRCs having metadata may now be associatedto each other based on the metadata and/or partial match of signatures.For example, and without limitation, if the metadata of a first SRC andthe metadata of a second SRC overlap more than a predetermined thresholdlevel, for example 50% of the metadata match, they may be consideredassociated clusters that form a concept structure. Similarly, a secondthreshold level can be used to determine if there is an associationbetween two SRCs where at least a number of signatures above the secondthreshold are identified as a match with another SRC. The preconfiguredthreshold level may be configured based on, for example, the sensitivityof the detection. For example, a lower threshold value may be set for asecurity application than would be set for an entertainment application.As a practical example, one may want to consider the concept of AbrahamLincoln where images of the late President and features thereof, appearin a large variety of photographs, drawings, paintings, sculptures, andmore and are associated as a concept structure of the concept “AbrahamLincoln”. Each concept structure may be then stored in memory, forexample, the DB 150 for further use.

FIG. 6 shows an exemplary and non-limiting flowchart 600 of theoperation of the CG 140. At S610, a SRC is received from either the CP130 or by accessing memory, for example, the DB 150, by the CG 140. AtS620, metadata are generated for the signatures of the SRC, for examplein accordance with the principles described hereinabove. A list of themetadata is created for the SRC preferably with no metadata duplication.In one embodiment, the commonality of metadata is used to signify thestrength of the metadata with respect to a signature and/or the SRC,i.e., a higher number of metadata repetitions is of more importance tothe SRC than a lower number of repetitions. Furthermore, in oneembodiment a threshold may be used to remove those metadata that have asignificantly low rate of repetition as not being representative of theSRC. The threshold can be preconfigured based on, for example, thesensitivity of the detection. For example, a lower threshold value maybe set for a security application than would be set for an entertainmentapplication.

At S630, the SRC is matched to previously generated SRCs of otherconcept structures (CSs) to attempt to find various matches, asdescribed, for example, hereinabove in more detail. At S640, it ischecked if at least one match was found and if so, execution continueswith S650; otherwise, execution continues with S660. At S650, the SRC isassociated with one or more of the concept structures to which the SRChas been shown to match. At S660, it is checked whether additional SRCsare to be received and if so execution continues with S610, otherwise,execution terminates.

A person skilled in the art would now appreciate the advantages of theDCC system 100 and methods thereof. The DCC system 100 is capable ofcreating automatically and in an unsupervised fashion concept structuresof a wide variety of MMDEs. When checking a new MMDE, it may be checkedagainst the concept structures stored, for example, in the DB 150, andupon detection of a match providing the concept information about theMMDE. With the number of concept structures being significantly lowerthan the number of MMDEs the solution is cost effective and scalable forthe purpose of identification of content of a MMDE.

FIG. 7 shows an exemplary and non-limiting schematic diagram of anetwork system 700 utilized to describe various disclosed embodiments. Anetwork 710 is used as a means for communication between differentelements of the system 700. The network 710 may be the Internet, theworld-wide-web (WWW), a local area network (LAN), a wide area network(WAN), a metro area network (MAN), and the like.

At least one computing device 720 is connected to the network 710. Thecomputing device 720 includes at least one software application 721. Theapplication 721 may be, for example, a web browser, a script, a mobileor native application (“app”), a web application, and the like. Thecomputing device 720 also includes one or more physical sensors 722-1through 722-n (collectively referred hereinafter as sensors 722 orindividually as a sensor 722, merely for simplicity purposes) configuredto capture sensory information. In one embodiment, the sensoryinformation is captured with respect to a MMDE displayed over theapplication 721. Each one of the sensors 722 may be, for example, butnot limited to, a camera, a web camera, a microphone, a GlobalPositioning System (GPS), an image analyzer, a speech recognizer, andthe like. The sensors 722 are configured to collect environmentalvariables related to a user of the user computing device 720. Suchenvironmental variables may be, for example, time, location, motioninformation, weather information within the location, and more.

The computing device 720 may be, for example, a personal computer (PC),a personal digital assistant (PDA), a mobile phone, a smart phone, atablet computer, a wearable computing device and other kinds of wiredand mobile appliances, equipped with browsing, viewing, listening,filtering, storing and managing capabilities. The computing device 720is configured to collect environmental variables related to a user ofthe computing device 720. According to one embodiment, the environmentalvariables related to the user of the computing device may be collectedby the sensors 722. It should be noted that only one computing device720 and one application 721 are illustrated in FIG. 7 only for the sakeof simplicity and without limitation on the generality of the disclosedembodiments. In an embodiment, the computing device 720 is at least oneapplication 721.

Also connected to the network 710 is a server 730 configured to performthe process of retrieving concept structures respective of the collectedenvironmental variables. The concept structures are retrieved from adata warehouse 760. To this end, the server 730 is connected to a DCCsystem 740 and a signature generator 750. In some embodiments, the DCCsystem 740 is configured and operates as the DCC system 100 discussed indetail above. The signature generator 750 is configured and operates asthe SG 120. In certain configurations, the SG of the DCC system isutilized as the signature generator 750. The DCC system 740 andsignature generator 750 may be connected through the server 730 to thenetwork 710 or through a direct connection. In certain configurations,the DCC system 740 and signature generator 750 may be embedded in theserver 730.

It should be noted that the each of the computing device 720 and server730 typically comprises a processing unit (not shown) and a memory (notshown). The processing unit may include one or more processors. The oneor more processors may be implemented with any combination ofgeneral-purpose microprocessors, multi-core processors,microcontrollers, digital signal processors (DSPs), field programmablegate array (FPGAs), programmable logic devices (PLDs), controllers,state machines, gated logic, discrete hardware components, dedicatedhardware finite state machines, or any other suitable entities that canperform calculations or other manipulations of information.

The processing unit may be coupled to the memory. In an embodiment, thememory contains instructions that when executed by the processing unitresults in the performance of the methods and processes described hereinbelow. Specifically, the processing unit may include machine-readablemedia for storing software. Software shall be construed broadly to meanany type of instructions, whether referred to as software, firmware,middleware, microcode, hardware description language, or otherwise.Instructions may include code (e.g., in source code format, binary codeformat, executable code format, or any other suitable format of code).The instructions, when executed by the one or more processors, cause theprocessing unit to perform the various functions described herein.

According to the embodiments disclosed herein, environmental variablesrelated to a user of the computing device 720 are collected. Thecollected variables are sent to the server 130. In an embodiment, theserver 130 is configured to analyze the received variables topotentially find one or more matching concept structures (or concepts).In an embodiment, at least one signature is generated for each receivedvariable. The signatures are generated by the signature generator 750.Then, the at least one signature generated for each variable is utilizedto query the DCC System 740 for identifying matching concept structures.As discussed in more detail above, the process for detecting matchingconcept structures is based on the SRCs of the concepts. That is, thesignature generated for an environmental variable is compared to theSRCs to find a respective matching concept structure. For example, andwithout limitation, if two signatures (of the variable and the SRC)overlap more than a predetermined threshold level, for example 60%, thenthe concept represented by SRC is determined to be a matching conceptstructure. In an exemplary embodiment, the predetermined thresholdlevels are relatively high (e.g., over 50%) to save only the mostrelevant concepts in a cache of the computing device.

The matching concept structure(s) are retrieved by the server 730 fromthe data warehouse 760. Thereafter, the retrieved concept structures aresent to the computing device 720 for storage in a memory, e.g., a cachememory of the computing device 720. In an embodiment, the conceptstructure(s) are sent to the computing device 720 upon a request sentfrom the device. As an example, such a request may be triggered when thedevice is not connected to a WiFi network.

In certain exemplary embodiments, the process for retrieving matchingconcept structures may be performed by the device 720 by means of theapplication 721. Specifically, the application 721 is configured to sendthe collected environmental variables in a format (e.g., as a multimediacontent element) that can be processed by the DCC system 740. Inresponse, the DCC system 740 returns matching concept structures. Thatis, the DCC system 740 would cause the generation of signatures for eachvariable and search for matching concept structures respective of suchsignatures. The matching concept structures, if any, will be sent to thecomputing device 720.

As a non-limiting example, a user of the computing device 720 isidentified as located in the New York City Zoo. Respective thereto,concept structures that were related to animals found in the New YorkCity Zoo are retrieved and stored in the cache memory of the computingdevice 720.

It should be noted that concept structures are cached in the device 720for a preconfigured period of time or event. For example, the conceptstructures are cached once an aging timer has elapsed or upon collectionof new environmental variables.

According to certain embodiment, the computing device 720 is configuredto analyze input multimedia content elements using the conceptstructures and environmental variables collected by the sensors 722.

An input multimedia content element may be captured by the device 720(e.g., using the device camera or phone), saved in the device's memory(e.g., saved photos), displayed on a webpage or page content, and so on.The input multimedia content element may be an image, a graphic, a videostream, a video clip, an audio stream, an audio clip, a video frame, aphotograph, and an image of signals (e.g., spectrograms, phasograms,scalograms, etc.), and/or combinations thereof and portions thereof.

In an embodiment, the analysis of an input multimedia content element isrespective of variables collected by the sensors 722 upon reception ofthe input multimedia content element by the computing device. To thisend, a metadata describing the one or more collected environmentalvariables is generated. For example, if the collected environmentalvariables include a location “5.sup.th AVE NY” and motion information“walking”, the metadata would be “walking in 5.sup.th AVE NY”. Thelocation and motion information can be derived from GPS coordinates anda motion sensor, respectively.

In another embodiment the metadata may be determined respective of theinput multimedia content element. This may include identifying anymetadata associated with the input content element (for example, tags,creating date, etc.) and/or any metadata associated with the source ofthe input content element (e.g., web page, app, storage location of theelement, etc.).

In an embodiment the metadata generated for the multimedia contentelements may be derived based on either or both of the techniques notedabove. That is, for example, such metadata may be determined respectiveof a tag associated with a picture and the location that the picture wastaken.

The generated metadata is compared to the cached concept structure andin particular, to metadata associated with each concept structure. Forexample, and without limitation, if the metadata generated based on thevariable and the metadata of a concept structure overlap more than apredetermined threshold level, for example 50% of the metadata match,they may be considered as matched. The preconfigured threshold level maybe configured based on, for example, the purpose of the analysis or by auser. The purpose of the analysis may be, for example, providingadvertisements that match the input multimedia content elements.

It should be noted that accessing the at least one concept structuresfrom the cache memory allows the computing device 720 to locally performthe analysis of the multimedia content elements, thereby reducing thebandwidth consumption used by the computing device 720 as compared toconnecting to the data warehouse 760 over the network 710 to access suchconcept structures.

FIG. 8 is a non-limiting and exemplary flowchart 800 describing a methodfor retrieving concept structures respective of environmental variablesrelated to a user of a computing device according to one embodiment. AtS810, at least one environmental variable related to the user of thecomputing device is collected responsive of use of the computing device720 by the user. The environmental variables may be collected by any oneof the sensors connected, integrated, or coupled to the computing device720 as further described hereinabove. The environmental variables mayinclude at least one of: a time of day, location information, motioninformation, weather information, a combination thereof, and so on.

At S820, at least one concept structure matching to the collectedvariables is retrieved from a data warehouse 760. As described above,retrieving the collection variables may include generating at least onesignature for each variable and querying the DCC system (e.g., system740) using the generated signature(s). Any concept structures matchingthe signatures is returned.

At S830, the at least one concept structure is stored in the cachememory of the computing device for future analysis of multimedia contentelements received from the computing device 720. As noted above, conceptstructures may be cached in the computing device 720 for a preconfiguredperiod of time or event. For example, the concept structures are cachedonce an aging timer has elapsed or upon collection of new environmentvariables.

At S840, it is checked whether additional environmental variables areavailable, and if so execution continues with S820; otherwise, executionterminates.

FIG. 9 is a non-limiting and exemplary flowchart describing the processof analyzing multimedia content element using the cache memory of thecomputing device. At S910, at least one input multimedia content elementto be analyzed is identified or otherwise received by the computingdevice. At S920, metadata describing the received multimedia contentelement is generated. Various non-limiting techniques for generating themultimedia content element are discussed in greater above.

At S930, an attempt to find at least one cached concept structuresmatching the received multimedia content element is performed. Thesearch for such matching of the concept structures is based on thegenerated metadata and the concept structures' metadata.

At S940, it is checked if such a match is found, and if so executioncontinues with S960; otherwise, execution continues with S950. At S950,if a match was not found, the at least one multimedia content elementmay be sent to a DCC system (e.g., system 740) to create a new conceptstructure as discussed above. In an embodiment, newly created conceptstructures are also cached in the memory of the computing device. AtS960, the at least one multimedia content element is analyzed using theat least one matched concept structure. The analysis of the multimediacontent element respective of the matching concept structure providesaccurate knowledge of the actual content of the element. This allowsproviding, for example, advertisements or other services based on thedetermined analysis.

At S970, it is checked whether there are additional requests and if so,execution continues with S920, otherwise, execution terminates.

The embodiments disclosed herein can be implemented as hardware,firmware, software, or any combination thereof. Moreover, the softwareis preferably implemented as an application program tangibly embodied ona program storage unit or non-transitory computer readable mediumconsisting of parts, or of certain devices and/or a combination ofdevices. The application program may be uploaded to, and executed by, amachine comprising any suitable architecture. Preferably, the machine isimplemented on a computer platform having hardware such as one or morecentral processing units (“CPUs”), a memory, and input/outputinterfaces. The computer platform may also include an operating systemand microinstruction code. The various processes and functions describedherein may be either part of the microinstruction code or part of theapplication program, or any combination thereof, which may be executedby a CPU, whether or not such computer or processor is explicitly shown.In addition, various other peripheral units may be connected to thecomputer platform such as an additional data storage unit and a printingunit. Furthermore, a non-transitory computer readable medium is anycomputer readable medium except for a transitory propagating signal.

All examples and conditional language recited herein are intended forpedagogical purposes to aid the reader in understanding the severalembodiments and the concepts contributed by the inventor to furtheringthe art, and are to be construed as being without limitation to suchspecifically recited examples and conditions. Moreover, all statementsherein reciting principles, aspects, and embodiments of the disclosedembodiments, as well as specific examples thereof, are intended toencompass both structural and functional equivalents thereof.Additionally, it is intended that such equivalents include bothcurrently known equivalents as well as equivalents developed in thefuture, i.e., any elements developed that perform the same function,regardless of structure.

We claim:
 1. A method for reducing bandwidth consumption by a usercomputing device, comprising: collecting at least one environmentalvariable related to current environment of the user computing device;attempting to match the at least one environmental variable to at leastone concept structure from a plurality of concept structures stored onanother computing device, wherein each concept structure in theplurality of concept structures comprises a concept metadata and anassociated reduced cluster of signatures derived from a plurality ofmultimedia content elements; upon determining that the attempting tomatch was successful, retrieving the at least one concept structure;caching the at least one concept structure in the cache memory receivingan input multimedia content element in a query; using the at least oneconcept structure in the cache memory to perform local analysis of theinput multimedia content element; and providing a response to the querybased on the local analysis.
 2. The method of claim 1, wherein theenvironmental variable includes at least one of: a time of day, locationinformation, motion information, and weather information.
 3. The methodof claim 2, wherein the at least one environmental variable is collectedby at least one sensor of the computing device.
 4. The method of claim3, wherein the at least one sensor is any one of: a camera, a webcamera, a microphone, a Global Positioning System, an image analyzer,and a speech recognizer.
 5. The method of claim 1, wherein theretrieving comprises fetching the at least one concept structure from atleast one of: a deep-content-classification system or a data warehouse.6. The method of claim 1, wherein the attempting to match comprises:deriving an environmental signature from the environmental variable;comparing the environmental signature to the associated reduced clusterof signatures; and determining that the at least one concept structurematches the at least one environmental variable according to an overlapof more than a predefined threshold between the environmental signatureand at least one signature in the associated reduced cluster ofsignatures.
 7. The method of claim 1, wherein the at least one conceptstructure is cached on the computing device for a predefined period oftime set by an aging timer.
 8. The method of claim 1, wherein the localanalysis comprises: determining input metadata associated with the inputmultimedia content element; and matching the at least one multimediacontent element to the at least one concept structure cached in thecache memory.
 9. The method of claim 8, wherein the determining inputmetadata comprises at least one of: identifying metadata associated withthe input multimedia content element; or generating metadata based onenvironmental variables collected upon the receiving of the inputmultimedia content element.
 10. The method of claim 1, wherein theconcept structure is determined to match the input multimedia contentelement when the input metadata overlaps the concept metadata in theconcept structure.
 11. The method of claim 1, wherein the inputmultimedia content element is at least one of: an image, graphics, avideo stream, a video clip, an audio stream, an audio clip, a videoframe, a photograph, images of signals, medical signals, geophysicalsignals, subsonic signals, supersonic signals, electromagnetic signals,and infrared signals.
 12. The method of claim 1, wherein the method isperformed locally by the computing device.
 13. The method according toclaim 1 comprising applying a periodic cluster reduction on eachsignature reduced cluster.
 14. The method according to claim 1comprising generating each one of the signatures by statisticallyindependent computational cores.
 15. The method according to claim 1wherein the environmental variable includes weather information.
 16. Themethod according to claim 1 wherein the environmental variable includesmotion information.
 17. The method according to claim 1 comprisinggenerating the plurality of concept structures in an automatic andunsupervised manner.
 18. The method according to claim 1 wherein eachcluster concept structure in the plurality of concept structures doesnot include any of the plurality of multimedia content elements.
 19. Anon-transitory computer readable medium having stored thereoninstructions for causing one or more processing units to execute thefollowing method steps: collecting at least one environmental variablerelated to a current environment of a computing device; attempting tomatch the at least one environmental variable to at least one conceptstructure from a plurality of concept structures, wherein each conceptstructure in the plurality of concept structures comprises a conceptmetadata and an associated reduced cluster of signatures derived from aplurality of multimedia content elements; upon determining that theattempting to match was successful, retrieving the at least one conceptstructure; caching the at least one concept structure in the cachememory; receiving an input multimedia content element in a query; usingthe at least one concept structure in the cache memory to perform localanalysis of the input multimedia content element; and providing aresponse to the query based on the local analysis.
 20. A system forcaching concept structures in a cache memory of a user computing device,comprising: a processing unit; and a memory connected to the processingunit, wherein the memory contains instructions that when executed by theprocessing unit, configure the system to: receive at least oneenvironmental variable related to a current environment of the usercomputing device; attempt to match the at least one receivedenvironmental variable to at least one concept structure from aplurality of concept structures, wherein each concept structure in theplurality of concept structures comprises a concept metadata and anassociated reduced cluster of signatures derived from a plurality ofmultimedia content elements; determine that the attempt to match was asuccess match; for a successful match, retrieve the at least one conceptstructure; cache the at least one concept structure in the cache memory;receive an input multimedia content element in a query; use the at leastone concept structure in the cache memory to perform local analysis ofthe input multimedia content element; and provide a response to thequery based on the local analysis.